//
//  WelcomeViewController.swift
//  个人微博
//
//  Created by 一介布衣 on 16/2/20.
//  Copyright © 2016年 HUAMANLOU. All rights reserved.
//

import UIKit
import SDWebImage

class WelcomeViewController: UIViewController {
    
    override func loadView() {
        // 自定义根视图
        view = UIImageView(image: UIImage(named: "ad_background"))
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        setupUI()
    }
    
    
    // 根视图在viewWillLayoutsubViews生命周期方法中，它的frame会被重新设置
    // 动画效果一般不要添加在ViewDidLoad中
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        // 执行动画效果
        startAnimation()
    }
    
    
    // 设置页面信息
    private func setupUI() {
        view.addSubview(iconImageView)
        view.addSubview(welcomeLabel)
        
        // 设置子视图的约束
        iconImageView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-160)
            // 约束头像的大小，是像素的一半
            make.size.equalTo(CGSizeMake(90, 90))
        }
        
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconImageView.snp_centerX)
            make.top.equalTo(iconImageView.snp_bottom).offset(16)
        }
        
        // 最初文案是隐藏的，等到用户头像动画结束时，再显示欢迎文案
        welcomeLabel.alpha = 0
        
        // 设置用户的头像
        iconImageView.sd_setImageWithURL(AccountViewModel.sharedAccountViewModel.headImageURL)
        
        // 设置用户头像的圆角
        iconImageView.layer.cornerRadius = 45
        // 裁减视图
        iconImageView.layer.masksToBounds = true
    }
    
    
    /// 头像的动画效果
    private func startAnimation() {
        //使用闭包动画来完成  iOS7.0之后推出的  有弹簧效果
        //1.usingSpringWithDamping  弹簧系数 0 ~ 1 之间 系数越小 弹簧越明显
        //2.initialSpringVelocity  加速度  一般设置 usingSpringWithDamping * 10 ~=  initialSpringVelocity 9.8是重力的加速度
        //3.options 动画的可选项 一般设置  在OC中有多个选项 使用位移枚举 在swift中使用数据来表示   '[]' 表示空数组
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.98, initialSpringVelocity: 9.8, options: [], animations: { () -> Void in
            // 更新iconImageView的约束
            let offset = -(UIScreen.mainScreen().bounds.height - 160)
            self.iconImageView.snp_updateConstraints(closure: { (make) -> Void in
                make.bottom.equalTo(self.view.snp_bottom).offset(offset)
            })
            
            // 设置强制更新页面，这一段代码必须写在动画闭包中
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                // 显示欢迎文案
                UIView.animateWithDuration(1.0, animations: { () -> Void in
                    self.welcomeLabel.alpha = 1
                    
                    }, completion: { (_) -> Void in
                        // 欢迎文案结束之后，切换根视图控制器
                        // 这种方式不推荐使用
                        // UIApplication.sharedApplication().keyWindow?.rootViewController = MainTabBarController()
                        // 发送通知的方式：
                        NSNotificationCenter.defaultCenter().postNotificationName(kChoseRootVc, object: "welcome")
                        
                })
                
                
                
                
                
        }
    }
    
    
    // 懒加载子视图
    // 1.用户头像
    private lazy var iconImageView:UIImageView = UIImageView(image: UIImage(named: "avatar_default_big"))
    // 2.欢迎的文案
    private lazy var welcomeLabel:UILabel = UILabel(text: "欢迎♪(*^^)o∀*" + (AccountViewModel.sharedAccountViewModel.userName ?? "") + "*∀o(^^*)♪归来", fontSize: 17, textColor: UIColor.darkGrayColor())
}
